1. Technical Field
This disclosure generally relates to virtualization in computer systems, and more specifically relates to failover in virtualized network communications.
2. Background Art
A physical server computer system can be configured into multiple logical partitions that provide the appearance of separate computer systems. A logically partitioned computer system can thus serve many different clients through separate logical partitions. A logically partitioned computer system typically includes a partition manager, known as a hypervisor in IBM parlance, which allocates and manages hardware resources such as processors, memory, disk, and I/O adapters in the various logical partitions. Once the logical partitions are created with the allocated hardware, an operating system is then installed in each logical partition, which provides the appearance of separate computer systems for all practical purposes.
The concept of virtualization supports logically partitioning a computer system. A physical CPU can thus be allocated to a logical partition as a virtual CPU. Similarly, other hardware resources, such as memory and I/O adapters, can be virtualized to a logical partition, thus giving the appearance to the operating system that is has physical hardware for these resources. The hypervisor sets up and manages the virtualized resources in a way that the operating system within a logical partition can't tell the difference between running on a stand-alone computer system and running on a virtual partition.
Network adapters are resources that are typically virtualized in a logically partitioned computer system. Many virtual network adapters in different logical partitions can be virtualized to a single hardware network adapter. Virtual network adapters are also an important part of communicating between logical partitions. Because an operating system can communicate with other computer systems over a network, an operating system in a logical partition can use a virtual network adapter to communicate with other logical partitions over a virtual local area network (VLAN).
An IBM product known as Shared Ethernet Adapter (SEA) is a specific instance of an Ethernet layer-2 bridge that allows sharing a physical Ethernet adapter between logical partitions. A server partition has a connection to a physical network adapter that has a connection to a physical network, and creates a virtual Ethernet adapter which communicates with a virtual Ethernet adapter in a client partition. When an application in the client partition needs to communicate to the physical network, the application sends network packets to the virtual network adapter in the client partition, which sends the network packets to the virtual network adapter in the virtual I/O server (VIOS) partition. Bridging code in the VIOS partition inspects the packets, then determines they are intended for the physical network, so the bridging code copies the packets to the physical Ethernet adapter. The copying of packets by the bridging code requires considerable overhead in the server partition, which adds delay to virtualized network connections that use SEA.